package com.service.admin.support;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;

@Component
@Slf4j
public class MemCache {

	@Autowired
	@Qualifier("defaultRedisTemplate")
	private RedisTemplate<String,String> defaultRedisTemplate;

	/**
	 * 新增不过期的数据
	 */
	public String setNoExpire(String key, String value) {
		defaultRedisTemplate.opsForValue().set(key, value);
		return "OK";
	}

	/**
	 * 设置带过期时间的数据
	 */
	public String set(String key, String value, int expireSeconds) {
		defaultRedisTemplate.opsForValue().set(key, value, expireSeconds, TimeUnit.SECONDS);
		return "OK";
	}

	/**
	 * 设置Mmap缓存数据
	 */
	public void set(String key, Map<String, String> values) {
		defaultRedisTemplate.opsForHash().putAll(key, values);
	}

	/**
	 * 读取
	 */
	public String get(String key) {
        log.info("redis取值：{}",defaultRedisTemplate.opsForValue().get(key));
		return defaultRedisTemplate.opsForValue().get(key);
	}

	/**
	 * 删除
	 */
	public void delete(String... keys) {
		defaultRedisTemplate.delete(Arrays.asList(keys));
	}

}
